package com.alg.pattern.strategy.demo;

import lombok.Setter;

/**
 * 执行策略上下文，也叫Context封装角色，起承上启下的作用，屏蔽高层模块对策略、算法的直接访问，封装可能存在的变化。
 */
@Setter
public class Context {

    private ComputeStrategy strategy;

    public Context(ComputeStrategy strategy){
        this.strategy = strategy;
    }

    public int executeStrategy(int num1, int num2){
        return strategy.compute(num1, num2);
    }
}
